perm filename PTMOVX.F4[PAG,LCS] blob sn#638893 filedate 1982-01-29 generic text, type T, neo UTF8
C******  PTMOVE.F4  ALSO SUBR. TURN (FOR PAGE-TURN FINDING)
C   -- Copyright 1982 by Leland Smith --
	SUBROUTINE PTMOVE(RN,PWDS)
	IMPLICIT INTEGER(A-Q,S-Z)
	REAL POS,EXTEN,PRCNT,ACCX,SPFAC
	DIMENSION R(2,400),IR(2,400),RN(1),PWDS(1)
	COMMON/KNR/KR(400) /NNP/NP(400) /JSTFY/ROV,PRCNT,RJSZ
	COMMON/STF/RSTFAC(0/7),RSTJ2 /KJY/ KY,JY /JWDS/RRN(3300)
	COMMON R2,JA,CENTR,J2,RJQ(18),RNO,JR,LX,RDIS
	COMMON/POSI/STFF(0/7),JJ2,POS/LLL/ITEM,LL,I,IX
	1 /IPG/IPG,JPG,BRACK(8),RSTNUM(8),RPSZ(8)
      EQUIVALENCE (R5,RJQ(3)),(R4,RJQ(2))
	1,(R3,RJQ(1)),(R8,RJQ(6)),(R9,RJQ(7))
	1,(IR,R,RRN)
	DATA RSP/2.7/,RI/4.7/,SPFAC/2.7/
C RI IS SIZE FACTOR FOR SPACING. IF LARGER THEN REQUIRES MORE SPACE.
	JJ2=-1
	J2=0
C  99=BACKUP
	IF(LL.EQ.'J')GO TO 12
	RDIS=0
CCC66	NST=1
	JJ=0 
	IF(R4.NE.R8.OR.R5.NE.R9)JJ=-1
	JY=0
C  JY IS CHANGED IN GETPTS
	IF(JJ)CALL GETPTS(LX,RN,PWDS)
C****** LX NOT USED IN GETPTS ********
	IF(JY.EQ.0)RETURN
	CALL MOVIT(RN,KR,R4,R5,R8,R9)
	RETURN
12	IF(R4.EQ.0)R4=.001
CCC	IF(R5.EQ.0)R5=200
	RCNT=0
	RRT=R5
	RZRO=R4
	RJSZ=RI
	CALL GETPTS(LX,RN,PWDS)
C****** LX NOT USED IN GETPTS ********
	IF(JY.EQ.0)RETURN
	ROV=RRT
	PRCNT=1.
CCC NOT USED IN PAGE	R7=R2
19	IF(RCNT.GT.9)GO TO 101
	RJSZ=RJSZ-.06
	RP=PRCNT
	RCNT=RCNT+1

	CALL JUSTFY(JPG-1,R,IR,KR,NP,RN,RPSZ,-1.0,R4,R5,R6,R8,R9)
C RPSZ HAS ADJUSTED SIZE FACTOR FOR EACH STAFF.
CCC	CALL JUSTFY(JPG-1,R,IR,KR,NP,RN,RSTFAC,-1.0,R4,R5,R6,R8,R9)

110	IF(ROV.LE.RRT+.01)RETURN
	IF(RJSZ.GT.4)RJSZ=4
	PRCNT=(ROV-RZRO)/(RRT-RZRO)
	IF(PRCNT.NE.RP)GO TO 19
C  GO BACK AND EXPAND SOME MORE
101	R4=RZRO
	R5=ROV
	R8=RZRO
	R9=RRT-.001
C  JUSTIFYING SPACE DIMINISHES EACH TIME AROUND.
	CALL MOVIT(RN,KR,R4,R5,R8,R9)
C  RVX SHOULD BE FARTHEST POINT TO RIGHT.
	END

	SUBROUTINE TURN(J,K,L,X)
C  FINDS RESTS BEFORE AND AFTER BAR LINES FOR PAGE TURNS
	COMMON /PX/KPN(1) /Q/Q(1)
	DATA RMETER/4.0/
	DO 1 M=J,K,L
	R=CODEN(KPN,M,Q,N)
	IF(R.EQ.1)RETURN
	IF(R.EQ.4)RETURN
	IF(R.NE.18)GO TO 3
C FINDS LAST METER GIVEN (4/4 IS DEFAULT)
	IF(Q(N+5).LT.98)GO TO 4
	RMETER=4
	GO TO 1
4	RMETER=4.01/Q(N+6)*Q(N+5)
C 2ND PART OF COMPOSITE METERS ARE IGNORED.*******
	GO TO 1
3	IF(R.NE.2)GO TO 1
	IF(Q(N).LT.6)GO TO 2
C LOOK  FOR NUMBERED RESTS AND REPEAT BARS (P8=-4, -5)
	IF(Q(N+8).LE.-4)RETURN
C NOW WE HAVE A NUMBERED REST.  MULT. NUMB. BY RHYTH. VALUE OF METER.
	X=X+Q(N+8)*RMETER
	GO TO 1
2	X=X+Q(N+7)
1	CONTINUE
	END